package com.nulldev.util.net.protocols.openSDTP2;

/**
 * SpeedModes enum <br>
 * The enums are determined automatically when a connection is made or overriden by the user.
 * @author null
 *
 */
public enum SpeedModes {
	
	/**
	 * Fastest transfer, no speed limit
	 */
	FASTEST("osdtp2.fastest", -1),
	/**
	 * Very fast data transfer (1MB/s)
	 */
	VERY_FAST("osdtp2.vfast", 1024 * 1024),
	/**
	 * Very fast data transfer (512KB/s)
	 */
	FAST("osdtp2.fast", 512 * 1024),
	/**
	 * Very moderate data transfer (384KB/s) <br>
	 * <b>Absolute MINIMUM</b> for the nTV standard.
	 */
	VERY_MODERATE("osdtp2.vmod", 384 * 1024),
	/**
	 * Moderate data transfer (128KB/s)
	 */
	MODERATE("osdtp2.mod", 128 * 1024),
	/**
	 * Slightly slow data transfer (64KB/s) <br>
	 * (Dialup speed, <i>sort of</i>)
	 */
	SLIGHTLY_SLOW("osdtp2.sslow", 64 * 1024),
	/**
	 * Slow data transfer (16KB/s)
	 */
	SLOW("osdtp2.slow", 16 * 1024),
	/**
	 * Quite Slow data transfer (2KB/s)
	 */
	QUITE_SLOW("osdtp2.qslow", 2048),
	/**
	 * Awfully slow data transfer (512B/s)
	 */
	AWFULLY_SLOW("osdtp2.aslow", 512),
	/**
	 * Connected to the Internet via Hell <br>
	 * PRETTY BAD data transfer (64B/s)
	 */
	HELL("osdtp2.hell", 64),
	;
	
	private SpeedModes(final String id, final long speedLimit) {
		//TODO: Implement
	}
}
